偽AI導論 †前言 †偽AI (SHIORI) 可以說是伺か的精神所在,一個撰寫良好的 偽AI 除了能提供相當豐富的功能之外,也能將 Ghost 發揮的淋漓盡致。儘管漂亮的 Shell 人人都喜歡,然而我們依然不能否認,最能讓人們印象深刻的,還是 Ghost 的個性以及會話內容。因此 偽AI 是絕對不可忽略的一個要素。 在正式進入專欄之前,您必須了解到,這是伺か的進階文章,難度上會提升許多。因此請務必先完整的看過進階教學篇,將目錄概念建立好,這在編寫偽AI的過程將會是很重要的基礎知識喔。 概念 †在進階教學的專欄中,我們簡介了偽AI,但並沒有詳細的說明偽AI到底是怎麼樣的一個事物,在此一併作個解釋。另外也請先複習一下目錄對應概念,在此就不多作敘述了。 所謂的偽AI,本身僅是個DLL動態連結檔,一般由C語言所構成,再經過C語言編譯程式編譯成DLL。例如華和梨套件整個核心所在,也只是 shiori.dll這個檔案,其餘的kawari.ini、KEEPS等等文件都是附屬於shiori核心之下的檔案。其對應關係如下: SSP ──┐ (SAKURA語法) ↑ ↓(系統事件) └─ Shiori.dll ← kawari.ini │ └→ AI辭書(純文字檔) 其中,kawari.ini主要用來指定要連結的AI語法文件,內容格式為: dict:xxx.txt dict:xxx.txt 以下類推。 而在Shiori.dll之中,則定義了 華和梨 這個 偽AI 的所有功能,程式函式以及運作方法。當指定載入華和梨系統的 Ghost 時,Materia 會去呼叫該 Ghost目錄 裡面的 shiori.dll ,並根據 shiori.dll 裡面的定義來讀取需要的AI語法文件,並根據內容設計作出相對的反應。 如此,其他的偽AI系統也都是採用這個架構,並遵循著相同的目錄對應模式。不過在檔名以及語法格式、支援功能等會有不同。使用者可以依照自己的喜好挑選一個 偽AI 來發展自己的人格。 一個簡單的概念:如同程式語言之中有VB、JAVA、C等等,雖然架構皆不盡相同,但同樣都是程式語言的一種,可以用來發展程式。偽AI也是類似的觀念。 核心程式語法 - SAKURA Script †核心程式採用的標準語法為 SAKURA Script ,這是一種語言描述字串,主要用來撰寫訊息以及提供系統變數用。或許您會對所謂的 SAKURA Script 與 偽AI語法 感到困惑,不是同樣都是語法嗎? 簡單的來說, SAKURA Script 是由核心程式本身提供的事件變數、程式參數,但它僅是單純的敘述事實以及訊息而已,本身並不包含結構化的程式架構、也無運算判斷能力--明確的說,它僅只 是個「播放器」而已。而上述的這些功能,例如 if 判定、 for 迴圈等等演算法,都必須要靠偽AI來提供。然後偽AI再根據AI辭書的內容,產生符合 SAKURA Script 語法的字串,讓核心程式去執行。 或許您會問,為何不把偽AI直接作在核心程式裡面呢?這就牽扯到伺か本身的特性與自由度的問題了,以目前的架構來說,人人都可以發展自己的偽AI,只要遵循標準的SAKURA語法以及各項規格即可。 如果直接將AI系統製作在核心裡面,除了增加程式撰寫困難之外(作者只有一人),也很難有多樣化的發展性。如今有如此眾多的偽AI可以選擇,也歸功於這開放的架構。 結語 †現在,你應該對「偽AI」這個名詞有所了解了。接下來,就請進入SHIORI列表中,選擇一個你偏好的偽AI來製作人格吧。 |